﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Netstars.Core.Cache
{
    /// <summary>
    /// 指定<see cref="Netstars.Core.Cache.CacheObject"/>缓存项的优先级
    /// </summary>
    public enum CacheItemPriority
    {
        /// <summary>
        /// 在服务器释放系统内存时，具有该优先级的缓存项最有可能被从缓存中删除
        /// </summary>
        Low = 1,
        /// <summary>
        /// 在服务器释放系统内存时，该优先级比 Netstars.SessionCache.CacheItemPriority.Normal 更有可能被删除
        /// </summary>
        BelowNormal = 2,
        /// <summary>
        /// 缓存优先级的默认值，值为  Netstars.SessionCache.CacheItemPriority.Normal 
        /// </summary>
        Default = 3,
        /// <summary>
        /// 在服务器释放系统内存时，具有该优先级的缓存项很有可能被从缓存中删除，其删除的可能性仅次于 Netstars.SessionCache.CacheItemPriority.Low 或 Netstars.SessionCache.CacheItemPriority.BelowNormal 优先级的那些项。该项为默认项。
        /// </summary>
        Normal = 3,
        /// <summary>
        /// 在服务器释放系统内存时，该优先级比 Netstars.SessionCache.CacheItemPriority.Normal 要小
        /// </summary>
        AboveNormal = 4,
        /// <summary>
        /// 在服务器释放系统内存时，具有该优先级的项最不可能被从缓存中删除
        /// </summary>
        High = 5,
        /// <summary>
        /// 在服务器释放系统内存时，具有该优先级的项不会被从缓存中删除。但是，具有优先级的项会根据绝对到期时间或可调整到期时间与其他项一起删除。
        /// </summary>
        NotRemovable = 6
    }
}
